GoLang module操作

@[toc]

环境

Windows10
GO:1.13

前期设置

不同版本开启GO module

1.11和1.12版本

将下面两个设置添加到系统的环境变量中

1
2
GO111MODULE=on
GOPROXY=https://goproxy.io

1.13版本之后

需要注意的是这种方式并不会覆盖之前的配置,有点坑,你需要先把之前的给删掉再设置

1
2
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

goLand开启 go mod

go get使用

使用go module之后,go get 拉取依赖的方式就发生了变化

  • 拉取最新的版本(优先择取 tag)

    1
    go get golang.org/x/text@latest
  • 拉取 master 分支的最新 commit

    1
    go get golang.org/x/text@master
  • 拉取 tag 为 v0.3.2 的 commit

    1
    go get golang.org/x/text@v0.3.2
  • 拉取 hash 为 342b231 的 commit,最终会被转换为 v0.3.2:

    1
    go get golang.org/x/text@342b2e
  • 更新

    1
    go get -u

其它基本操作

  1. 初始化一个moudle,模块名为你项目名

    1
    go mod init 模块名
  2. 下载modules到本地cache

    目前所有模块版本数据均缓存在 $GOPATH/pkg/mod和 ​$GOPATH/pkg/sum

    1
    go mod download
  3. 编辑go.mod文件
    选项有-json-require-exclude,可以使用帮助go help mod edit

    1
    go mod edit
  4. 以文本模式打印模块需求图

    1
    go mod graph
  5. 删除错误或者不使用的modules

    1
    go mod tidy
  6. 生成vendor目录

    1
    go mod vendor
  7. 验证依赖是否正确

    1
    go mod verify
  8. 查找依赖

    1
    go mod why

高级操作

  1. 更新到最新版本
    1
    go get github.com/gogf/gf@version

如果没有指明 version 的情况下,则默认先下载打了 tag 的 release 版本,比如 v0.4.5 或者 v1.2.3;如果没有 release 版本,则下载最新的 pre release 版本,比如 v0.0.1-pre1。如果还没有则下载最新的 commit

  1. 更新到最新的修订版(只改bug的版本)
1
go get -u=patch github.com/gogf/gf
  1. 替代只能翻墙下载的库

    1
    2
    go mod edit -replace=golang.org/x/crypto@v0.0.0=github.com/golang/crypto@latest
    go mod edit -replace=golang.org/x/sys@v0.0.0=github.com/golang/sys@latest
  2. 清理moudle 缓存

    1
    go clean -modcache
  3. 查看可下载版本

    1
    go list -m -versions github.com/gogf/gf
-------------本文结束感谢您的阅读-------------